#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long n,d,m,s,g,p;
string st,ss;
struct wl
{
	int b;
	string dz;
}a[1010];
int main()
{
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	cin>>n;
	for(int i=1; i<=n; i++)
	{
		cin>>ss>>st;
		d=0,m=0,p=0,s=0;
		if(st[0]=='.'||st[0]==':'||st[st.size()-1]=='.'||st[st.size()-1]==':')p=1;
		for(int j=0; j<st.size(); j++)
		{
			if(st[j]=='.')d++,s=0;
			if(st[j]==':')m++,s=0;
			if(st[j]>='0'&&st[j]<='9')s*=10,s+=int(st[j]-48);
			if(s>255&&m!=1||st[j]=='0'&&st[j+1]>='0'&&st[j+1]<='9'&&(st[j-1]=='.'||st[j-1]==':'))
			{
				p=1;
				break;
			}
			if((st[j]=='.'||st[j]==':')&&(st[j-1]=='.'||st[j-1]==':'))
			{
				p=1;
				break;
			}
		}
		if(s>65535)p=1;
		if(d!=3||m!=1||p==1)
		{
			printf("ERR\r");
			continue;
		}
		p=0;
		for(int j=1; j<=g; j++)
		{
			if(a[j].dz==st)
			{
				if(ss=="Server")printf("FAIL\r");
				else printf("%d\r",a[j].b);
				p=1;
				break;
			}
		}
		if(p==1)continue;
		if(ss=="Server")
		{
			printf("OK\r");
			a[++g].b=i;
			a[g].dz=st;
		}
		else printf("FAIL\r");
	}
	return 0;
}
